package com.itheima.inner.test8;

public class Test {

    public static void main(String[] args) {
        useAnimal(new Animal() {
            @Override
            void eat() {
                System.out.println("狗吃肉");
            }
        });
        useAnimal(new Animal() {
            @Override
            void eat() {
                System.out.println("猫吃鱼");
            }
        });
        //匿名内部类的使用场景:当一个方法需要一个接口,或者抽象类的时候
        //而我们不想去创建他的子类或实现类  直接可以使用匿名内部类完成对象的创建

    }

    //提前准备了一个方法  方法中需要一个Animal 的对象
    public static void useAnimal(Animal a){
        a.eat();
    }

}
abstract class Animal {
    public void drink() {
        System.out.println("喝水");
    }

    abstract void eat();
}
